package homeworks.day01;

import java.io.File;
import java.io.FileFilter;

/**
 * 列出当前目录中所有名字包含s的子项。
 * <p>
 * 使用匿名内部类和lambda两种写法
 * <p>
 * 单词记一记:
 * FileFilter   文件过滤器
 * accept       接受
 *
 * @author Xiloer
 */
public class Test02 {
    public static void main(String[] args) {
        //【 表示当前的项目目录 】
        File dir = new File(".");

        //【用匿名内部类的方式 把File文件的所有文件列表放入到subs数组中，用文件过滤器 返回所有包含带s的文件】
        File[] subs = dir.listFiles(new FileFilter() {
            public boolean accept(File file) {
                return file.getName().contains("s");
            }
        });

        //lambda方式
        FileFilter filter2 = file -> file.getName().contains("s");

        //【用来判断当前File对象表示的是否为一个目录】
        if (dir.isDirectory()) {

            //【 遍历所有目录 】
            for (int i = 0; i < subs.length; i++) {
                //【输出包含带s的文件名】
                System.out.println(subs[i].getName());
            }
        }
        //用lambda方法，输出带s的文件
        if (dir.isDirectory()) {
            File[] sum = dir.listFiles(filter2);
            for (int i = 0; i < sum.length; i++) {
                System.out.println(sum[i].getName());
            }

        }


    }
}

